<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>topic 1  &middot; sitename</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1">


<meta name="description" content="" />

<meta name="keywords" content="">


<meta property="og:title" content="topic 1  &middot; sitename ">
<meta property="og:site_name" content="sitename"/>
<meta property="og:url" content="https://lvzongcheng.gitee.io/topics/topic-1/" />
<meta property="og:locale" content="en-EN">


<meta property="og:type" content="website" />



<link href="https://lvzongcheng.gitee.io/topics/topic-1/index.xml" rel="alternate" type="application/rss+xml" title="topic 1" />

<link rel="canonical" href="https://lvzongcheng.gitee.io/topics/topic-1/" />

<link rel="apple-touch-icon-precomposed" sizes="144x144" href="https://lvzongcheng.gitee.io/touch-icon-144-precomposed.png">
<link href="https://lvzongcheng.gitee.io/favicon.png" rel="icon">

<meta name="generator" content="Hugo 0.60.0" />

  <!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->

<link href='https://fonts.googleapis.com/css?family=Merriweather:300%7CRaleway%7COpen+Sans' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="/css/font-awesome.min.css">
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/css/highlight/default.css">

  
  
	<script>
	  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
	  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
	  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
	  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

	  ga('create', 'Your Google Analytics tracking code', 'auto');
	  ga('send', 'pageview');

	</script>

</head>
<body>
  <main id="main-wrapper" class="container main_wrapper has-sidebar">
    <header id="main-header" class="container main_header">
  <div class="container brand">
  <div class="container title h1-like">
  <a class="baselink" href="https://lvzongcheng.gitee.io">
  LvZongCheng

</a>

</div>

  
<div class="container topline">
  
  淡定 执著 进取 自律


</div>


</div>

  <nav class="container nav primary no-print">
  

<a class="homelink" href="https://lvzongcheng.gitee.io">home</a>


  
<a href="https://lvzongcheng.gitee.io/framework" title="Show list of Frameworks">Frameworks</a>

<a href="https://lvzongcheng.gitee.io/java" title="Show list of Java">Java</a>

<a href="https://lvzongcheng.gitee.io/linux" title="Show list of Linux">Linux</a>

<a href="https://lvzongcheng.gitee.io/redis" title="Show list of Redis">Redis</a>

<a href="https://lvzongcheng.gitee.io/sql" title="Show list of SQL">SQL</a>

<a href="https://lvzongcheng.gitee.io/Spring" title="Show list of Spring">Spring</a>

<a href="https://lvzongcheng.gitee.io/tools" title="Show list of Tools">Tools</a>

<a href="https://lvzongcheng.gitee.io/webpage" title="Show list of WebPage">WebPage</a>

<a href="https://lvzongcheng.gitee.io/information" title="Show list of information">information</a>

<a href="https://lvzongcheng.gitee.io/network" title="Show list of network">network</a>

<a href="https://lvzongcheng.gitee.io/%E5%BE%AE%E6%9C%8D%E5%8A%A1" title="Show list of 微服务">微服务</a>

<a href="https://lvzongcheng.gitee.io/%E6%80%BB%E7%BB%93" title="Show list of 总结">总结</a>

<a href="https://lvzongcheng.gitee.io/%E6%9C%BA%E5%99%A8%E8%87%AA%E5%8A%A8%E5%8C%96" title="Show list of 机器自动化">机器自动化</a>

<a href="https://lvzongcheng.gitee.io/%E6%B1%87%E7%BC%96" title="Show list of 汇编">汇编</a>

<a href="https://lvzongcheng.gitee.io/%E8%AE%B0%E4%BA%8B%E6%9C%AC" title="Show list of 记事本">记事本</a>


</nav>

<div class="container nav secondary no-print">
  
<a id="contact-link-email" class="contact_link" rel="me" aria-label="Email" href="mailto:Lyc19880405@163.com">
  <span class="fa fa-envelope-square"></span></a>



<a id="contact-link-github" class="contact_link" rel="me" aria-label="Github" href="https://github.com/enten/hugo-boilerplate">
  <span class="fa fa-github-square"></span></a>




 


















</div>


  

</header>


<section id="main-content" class="container main_content">
  <header class="container">
    <h1>topic 1
</h1>

  </header>
  
    <article class="container content summary">
  <div class="container hat">
  <h2><a href="https://lvzongcheng.gitee.io/framework/ssm/">SSM
</a>
</h2>

</div>

  <p class="container content">
  
  
    SSM description
  


</p>


  
</article>

  
    <article class="container content summary">
  <div class="container hat">
  <h2><a href="https://lvzongcheng.gitee.io/framework/struts2/">Struts2
</a>
</h2>

</div>

  <p class="container content">
  
  
    Struts2工作原理 在struts2的应用中，从用户请求到服务器返回相应响应给用户端的过程中， 包含了许多组件如：Controller、ActionProxy、ActionMapping、Configuration Manager、 ActionInvocation、Inerceptor、Action、Result等。下面我们来具体看看这些组件有什么联系， 它们之间是怎样在一起工作的。   客户端（Client）向Action发用一个请求（Request）
  Container通过web.xml映射请求，并获得控制器（Controller）的名字
  容器（Container）调用控制器（StrutsPrepareAndExecuteFilter或FilterDispatcher）。在Struts2.1以前调用FilterDispatcher，Struts2.1以后调用StrutsPrepareAndExecuteFilter
  控制器（Controller）通过ActionMapper获得Action的信息
  控制器（Controller）调用ActionProxy
  ActionProxy读取struts.xml文件获取action和interceptor stack的信息。
  ActionProxy把request请求传递给ActionInvocation
  ActionInvocation依次调用action和interceptor
  根据action的配置信息，产生result
  Result信息返回给ActionInvocation
  产生一个HttpServletResponse响应
  产生的响应行为发送给客服端。
  
  


</p>


  
</article>

  
    <article class="container content summary">
  <div class="container hat">
  <h2><a href="https://lvzongcheng.gitee.io/framework/test/">Test
</a>
</h2>

</div>

  <p class="container content">
  
  
    
  


</p>


  
</article>

  
    <article class="container content summary">
  <div class="container hat">
  <h2><a href="https://lvzongcheng.gitee.io/tools/uml/">UML
</a>
</h2>

</div>

  <p class="container content">
  
  
    UML description
  


</p>


  
</article>

  
    <article class="container content summary">
  <div class="container hat">
  <h2><a href="https://lvzongcheng.gitee.io/tools/url/">URL
</a>
</h2>

</div>

  <p class="container content">
  
  
    URL description
  


</p>


  
</article>

  
    <article class="container content summary">
  <div class="container hat">
  <h2><a href="https://lvzongcheng.gitee.io/tools/weblogic/">Weblogic
</a>
</h2>

</div>

  <p class="container content">
  
  
    Weblogic description
  


</p>


  
</article>

  
    <article class="container content summary">
  <div class="container hat">
  <h2><a href="https://lvzongcheng.gitee.io/linux/yum/">yum
</a>
</h2>

</div>

  <p class="container content">
  
  
    JavaBase description
  


</p>


  
</article>

  
    <article class="container content summary">
  <div class="container hat">
  <h2><a href="https://lvzongcheng.gitee.io/framework/solr/">全文搜索服务器
</a>
</h2>

</div>

  <p class="container content">
  
  
    lucene和solr比较 Lucene 可以实现站内搜索，编码复杂，目前来说不推荐使用。
使用搜索引擎提供接口：缺点是索引库是搜索引擎的索引库不能维护。
优点：集成方便。 Solr 提供了一整套全文检索的解决方案。使用简单，推荐使用！
lucene和solr 的区别  lucene是Api solr是服务器  Solr  Solr也是Apache旗下的顶级项目。基于lucene开发的全文检索服务器。 Solr和Lucene的版本同步更新。 solr可以独立运行，需要运行在web容器中。例如：Tomcat、WebLogic、jetty、Jboss。 solr服务对外提供服务，可以使用服务的接口和solr服务进行交换。使用get和post方法基于http的 请求，和客户端进行数据交互。传递的数据可以是xml也可以是json。  Solr的安装部署及简单使用 1.首先下载Solr &ndash;http://lucene.apache.org/solr/ &ndash;solr版本：4.10.3 &ndash;要求的 &ndash;Jdk：1.7以上 &ndash;Tomcat 7.0以上
注：Solr 源码中 example文件夹下存放示例
Solr的部署步骤：  第一步：安装Tomcat 第二步：把solr-4.10.3\dist\solr-4.10.3.war放到tomcat的webapp下，改名为solr.war 第三步：解压war包。 第四步：复制\solr-4.10.3\example\lib\ext目录下的jar复制到solr工程的WEB-INF\lib下。主要是日志相关的jar包 第五步：在solr项目的WEB-INF下创建一个classes目录，把\solr-4.10.3\example\resources\log4j.properties复制过去。 （不是必须的，为了在控制台查看日志用的） 第六步：需要配置SolrHome及SolrCore solrHome：就是solr服务器配置文件的目录。\solr-4.10.3\example\solr文件夹就是一个标准的solrhome。 SolrCore：一个SolrCore就是一个完整功能的索引库。可以类比mysql数据库的一个库。索引库之间数据是隔离的。 把\solr-4.10.3\example\solr文件夹复制到指定位置（任意位置都可以）。本例中D:\temp\solr目录下，改名为solrhome（改名不是必须，便于理解） 第七步：配置solrconfig.xml（此步骤也不是必须的）  &lt;lib&gt;：solrcore需要引用的扩展包。默认的路径是SolrCore的目录也就是collection1目录下的lib文件夹。（此步骤也不是必须的）&lt;dataDir&gt;：索引库的存放位置。默认路径是SolrCore的目录也就是collection1目录下的data文件夹。如果想使用默认的路径不需要修改配置。data文件夹会自动创建。&lt;requestHandler&gt;:配置solr服务的接口。其中索引的维护使用/update&lt;admin&gt;&lt;defaultQuery&gt;*:*&lt;/defaultQuery&gt; &lt;/admin&gt;查询：/query 、/select &lt;dataDir&gt;d:/temp/index&lt;/dataDir&gt;第八步：在solr工程的web.xml中配置solrhome的位置。目的是让solr服务器知道solrhome的位置。
&lt;!--配置jndi告诉solr工程我们的solrhome的位置--&gt;&lt;env-entry&gt;&lt;env-entry-name&gt;solr/home&lt;/env-entry-name&gt;&lt;env-entry-value&gt;D:/temp/solr/solrhome&lt;/env-entry-value&gt;&lt;env-entry-type&gt;java.lang.String&lt;/env-entry-type&gt;&lt;/env-entry&gt;第九步：启动tomcat。
增加solrcore：  第一步：复制Collection1文件夹 第二步：改名为collection2 第三步：修改collection2下面的core.properties文件 name=collection2 第四步：重启solr服务，也就是重启tomcat。  schema.
  


</p>


  
</article>

  
    <article class="container content summary">
  <div class="container hat">
  <h2><a href="https://lvzongcheng.gitee.io/tools/%E9%9D%A2%E8%AF%95/">面试
</a>
</h2>

</div>

  <p class="container content">
  
  
    面试 description
  


</p>


  
</article>

  
    <article class="container content summary">
  <div class="container hat">
  <h2><a href="https://lvzongcheng.gitee.io/%E8%AE%B0%E4%BA%8B%E6%9C%AC/">记事本
</a>
</h2>

</div>

  <p class="container content">
  
  
    记事本 description
  


</p>


  
</article>

  
  
<div class="container pagination">
  


<a aria-label="First" href="https://lvzongcheng.gitee.io/topics/topic-1/">
  <span aria-hidden="true">««</span>
</a>

<a aria-label="Previous" href="https://lvzongcheng.gitee.io/topics/topic-1/page/3/">
  <span aria-hidden="true">«</span>
</a>


<a href="https://lvzongcheng.gitee.io/topics/topic-1/">
  1
</a>

<a href="https://lvzongcheng.gitee.io/topics/topic-1/page/2/">
  2
</a>

<a href="https://lvzongcheng.gitee.io/topics/topic-1/page/3/">
  3
</a>

<a class="active" href="https://lvzongcheng.gitee.io/topics/topic-1/page/4/">
  4
</a>

<a href="https://lvzongcheng.gitee.io/topics/topic-1/page/5/">
  5
</a>

<a href="https://lvzongcheng.gitee.io/topics/topic-1/page/6/">
  6
</a>

<a href="https://lvzongcheng.gitee.io/topics/topic-1/page/7/">
  7
</a>

<a href="https://lvzongcheng.gitee.io/topics/topic-1/page/8/">
  8
</a>

<a href="https://lvzongcheng.gitee.io/topics/topic-1/page/9/">
  9
</a>

<a href="https://lvzongcheng.gitee.io/topics/topic-1/page/10/">
  10
</a>


<a aria-label="Next" href="https://lvzongcheng.gitee.io/topics/topic-1/page/5/">
  <span aria-hidden="true">»</span>
</a>

<a aria-label="Last" href="https://lvzongcheng.gitee.io/topics/topic-1/page/10/">
  <span aria-hidden="true">»»</span>
</a>


</div>


</section>
      <footer id="main-footer" class="container main_footer">
  

  <div class="container nav foot no-print">
  
<a href="https://lvzongcheng.gitee.io/license">license</a>


  <a class="toplink" href="#">back to top</a>

</div>

  <div class="container credits">
  
<div class="container footline">
  
  code with <!-- raw HTML omitted --><!-- raw HTML omitted -->


</div>


  
<div class="container copyright">
  
  (c) 2015 yourname.


</div>


</div>

</footer>

    </main>
    
<script type="text/javascript">
  (function() {
    
    
    if (window.location.hostname == "localhost")
      return;
    var dsq = document.createElement('script'); dsq.async = true; dsq.type = 'text/javascript';
    dsq.src = '//your_disqus_shortname.disqus.com/count.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
  })();
</script>



<script src="/js/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>



    
  </body>
</html>

